package com.zhoux.api.io.io;

import java.io.*;

/**
 * @author taoyi
 * @version 1.0
 * @date 2021/3/16 14:21
 *
 * 本类用于测试文件的读取
 */
public class In_Test {
    public static void main(String[] args) {
        method(); // 字节流的读取
        method2(); // 高效字节流的读取
    }

    public static void method() {

        InputStream in2 = null;
        try {
            // new InputStream(); 报错，抽象父类不可以创建对象
//            InputStream in = new FileInputStream(new File("E:\\SoftwareEngineering\\java\\IO\\hello.txt"));
            // 1.创建字节流读取对象
            in2 = new FileInputStream("E:\\SoftwareEngineering\\java\\IO\\hello.txt");
            // 2.
            // 开始读取,read每次读取1个字节，如何读取到了数据末尾，返回
            int b; // 定义变量，记录读到的数据
            while ((b = in2.read()) != -1){ // 返回值为-1 表示没有数据了
                System.out.println(in2.read());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                // 释放资源
                in2.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    }public static void method2() {

        BufferedInputStream in2 = null;
        try {
            // new InputStream(); 报错，抽象父类不可以创建对象
            // 1.创建字节流读取对象
//            in2 = new BufferedInputStream(new FileInputStream(new File("E:\\SoftwareEngineering\\java\\IO\\hello.txt")));
            in2 = new BufferedInputStream(new FileInputStream("E:\\SoftwareEngineering\\java\\IO\\hello.txt"));


            // 2.
            // 开始读取,read每次读取1个字节，如何读取到了数据末尾，返回
            int b; // 定义变量，记录读到的数据
            while ((b = in2.read()) != -1){ // 返回值为-1 表示没有数据了
                System.out.println(in2.read());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                // 释放资源
                in2.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            ;
        }
    }
}

